package com.parking.renters.service;

import com.parking.common.core.model.PageInfo;
import com.parking.renters.entity.RentersInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.parking.renters.model.stallCall.dto.RentersInfoDto;
import com.parking.renters.model.stallCall.dto.SelectRentersInfoByIdDTO;
import com.parking.renters.model.stallCall.form.AuthenticationNameForm;
import com.parking.renters.model.stallCall.form.PerfectCertifiedForm;
import com.parking.renters.model.stallCall.form.SelectRentersForm;
import com.parking.renters.model.stallCall.form.UpdateRentersImgForm;

import java.io.IOException;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 彭于晏
 * @since 2023年11月2
 * ‘
 * 9日
 */
public interface RentersInfoService extends IService<RentersInfo> {

    /***
     * 根据id查询出租客信息
     * @param rentersInfoId
     * @return
     */
    RentersInfoDto selectRentersInfoById(Integer rentersInfoId);

    /***
     * 出租客实名认证
     * @param form
     * @param rentersId
     * @return
     * @throws IOException
     */
    Boolean AuthenticationName(AuthenticationNameForm form,Integer rentersId)throws IOException;

    /***
     * 判断出租客是否实名
     * @param rentersInfoId
     * @return
     */
    RentersInfoDto selectRentersRealName(Integer rentersInfoId);

    /***
     * 平台查询出租客信息
     * @param form
     * @return
     */
    PageInfo selectRentersInfo(SelectRentersForm form);

    /***
     * 物业查询出租客信息
     * @param form
     * @return
     */
    PageInfo selectRenters(SelectRentersForm form);

    /***
     * 修改出租客信息
     * @param rentersInfoId
     * @param rentersInfoTel
     */
    void updateRenters(Integer rentersInfoId,String rentersInfoTel);

    /***
     * 根据id查询出租客信息
     * @param rentersInfoId
     * @return
     */
    SelectRentersInfoByIdDTO rentersInfoCallById(Integer rentersInfoId);

    /***
     * 出租客上传头像
     * @param path
     * @param rentersId
     */
    void upLoad(String path, Integer rentersId);

    /***
     * 修改出租客头像
     * @param form
     * @throws IOException
     */
    void updateRentersImg(UpdateRentersImgForm form)throws IOException;

    /***
     * 完善信息成功
     *
     * @param
     * @param form
     * @param rentersId
     * @return
     */
    void perfectCertifiedInfo(PerfectCertifiedForm form, Integer rentersId) throws Exception;
}
